using System;
using System.Collections.Generic;
namespace ServiceStack
{
	public class MetadataType
	{
		public string Name
		{
			get;
			set;
		}
		public string Namespace
		{
			get;
			set;
		}
		public string[] GenericArgs
		{
			get;
			set;
		}
		public MetadataTypeName Inherits
		{
			get;
			set;
		}
		public MetadataTypeName[] Implements
		{
			get;
			set;
		}
		public string DisplayType
		{
			get;
			set;
		}
		public string Description
		{
			get;
			set;
		}
		public bool ReturnVoidMarker
		{
			get;
			set;
		}
		public bool? IsNested
		{
			get;
			set;
		}
		public bool? IsEnum
		{
			get;
			set;
		}
		public bool? IsInterface
		{
			get;
			set;
		}
		public bool? IsAbstract
		{
			get;
			set;
		}
		public MetadataTypeName ReturnMarkerTypeName
		{
			get;
			set;
		}
		public List<MetadataRoute> Routes
		{
			get;
			set;
		}
		public MetadataDataContract DataContract
		{
			get;
			set;
		}
		public List<MetadataPropertyType> Properties
		{
			get;
			set;
		}
		public List<MetadataAttribute> Attributes
		{
			get;
			set;
		}
		public List<MetadataTypeName> InnerTypes
		{
			get;
			set;
		}
		public List<string> EnumNames
		{
			get;
			set;
		}
		public List<string> EnumValues
		{
			get;
			set;
		}
		public string GetFullName()
		{
			return this.Namespace + "." + this.Name;
		}
	}
}
